package com.info33.platform.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.info33.platform.business.app.dto.AppTenantApplyDTO;
import com.info33.platform.business.app.entity.AppTenantApply;
import com.info33.platform.common.mvc.vo.Result;
import com.info33.platform.system.dto.SysTenantDTO;
import com.info33.platform.system.entity.SysTenant;
import com.info33.platform.system.vo.SysTenantVO;

import javax.validation.Valid;

/**
 * @author admin
 */
public interface SysTenantService extends IService<SysTenant> {

    /**
     * 新增租户信息
     *
     * @param sysTenantDTO
     * @return
     */
    Result<?> saveTenant(SysTenantDTO sysTenantDTO);

    /**
     * 更新租户信息
     *
     * @param sysTenantDTO
     * @return
     */
    Result<?> updateTenant(@Valid SysTenantDTO sysTenantDTO);

    /**
     * 分页获取租户信息列表
     *
     * @param page
     * @param sysTenant
     * @return
     */
    IPage<SysTenantVO> pageTenantList(IPage<SysTenantVO> page, SysTenant sysTenant);

    /**
     * 根据id获取租户详情+用户信息+菜单树+下发菜单列表
     *
     * @param id
     * @param tenantId
     * @return
     */
    SysTenantVO getDetailById(Long id, Long tenantId);

    /**
     * 获取开发环境 租户域名
     *
     * @param url-
     * @return -
     */
    String devUrl(String url);

    /**
     * pc - 同意申请
     *
     * @param dto-
     * @param selectById-
     * @return -
     */
    Result<Object> pcAgree(AppTenantApplyDTO dto, AppTenantApply selectById);
}